import { PermissionAction } from '@supabase/shared-types/out/constants'
import { useParams } from 'common'
import { PageContainer } from 'ui-patterns/PageContainer'
import {
PageHeader,
PageHeaderAside,
PageHeaderDescription,
PageHeaderMeta,
PageHeaderSummary,
PageHeaderTitle,
} from 'ui-patterns/PageHeader'
import { PageSection, PageSectionContent } from 'ui-patterns/PageSection'
import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader'
import { RateLimits } from '@/components/interfaces/Auth/RateLimits/RateLimits'
import AuthLayout from '@/components/layouts/AuthLayout/AuthLayout'
import DefaultLayout from '@/components/layouts/DefaultLayout'
import { DocsButton } from '@/components/ui/DocsButton'
import NoPermission from '@/components/ui/NoPermission'
import { UnknownInterface } from '@/components/ui/UnknownInterface'
import { useAsyncCheckPermissions } from '@/hooks/misc/useCheckPermissions'
import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled'
import { DOCS_URL } from '@/lib/constants'
import type { NextPageWithLayout } from '@/types'
const RateLimitsPage: NextPageWithLayout = () => {
const { ref } = useParams()
const showRateLimits = useIsFeatureEnabled('authentication:rate_limits')
const { can: canReadAuthSettings, isSuccess: isPermissionsLoaded } = useAsyncCheckPermissions(
PermissionAction.READ,
'custom_config_gotrue'
)
if (!showRateLimits) {
return
}
if (isPermissionsLoaded && !canReadAuthSettings) {
return
}
return (
<>
Rate Limits
Safeguard against bursts of incoming traffic to prevent abuse and maximize stability
{!isPermissionsLoaded ? (
) : (
)}
>
)
}
RateLimitsPage.getLayout = (page) => (
{page}
)
export default RateLimitsPage